import request from './Request1.js'
import env from '../../env/index.js'

/* 创建request实例 */
const service = request.create({
  baseURL: env.BASE_URL, // 可以使用环境变量的服务地址
  timeout:10000
})

// request拦截
service.interceptors.request.use(config => {
  config.header = {} // 不清空一下到时候没办法清掉header的token和id
  // 设置请求头
  if (uni.getStorageSync('accessToken')) {
    config.header['Authorization'] = uni.getStorageSync('accessToken')
  }
  // 设置请求头，不设置情况下默认是body传参，而且代码http调用设置的会覆盖掉默认相同属性的header
  config.header['content-type'] = 'application/json;charset=utf-8;';
  // config.header['Origin'] = env.ORIGIN; // 修改请求域名
  // 如果要执行请求前拦截，使用return false;
  return config;
}, error => {
  return Promise.reject(error);
})

// response拦截
service.interceptors.response.use(response => {
  const res = response.data;
  // 这里可以通过返回的code判断登录是否过期
  if (res) {
    return res;
  } else {
    return Promise.reject(new Error(res.message || 'Error'))
  }
}, error => {
  wx.hideLoading();
  // wx.showToast({
  //   icon: 'none',
  //   title: '您的登录信息已失效，请重新登录',
  // })
  return Promise.reject(error);
})

/* 导出 */
export default service;

//   /**
//        request.js
//      * 封装一个Promise风格的通用请求
//      * url - 请求地址
//      * option - 包含请求方式、请求参数的配置对象
//  */
// import env from '../../env/index.js';

//  import Toast from '/@vant/weapp/toast/toast';//引入vant插件，用于提示错误
//  const request = function(url,options){
//      reuturn new Promise((resolve,reject)=>{
//          wx.request({
//              url:app.globalData.baseUrl+url,
//              method:options.method,
//              data:options.method=="GET"?options.data:JSON.stringify(options.data),
//              // header这里根据业务情况自行选择需要还是不需要
//              header:{
//                  'Authorization':'Bearer '+app.globalData.token
//              },
//              success: (res) => {
//                 if (res.data.code == 500) {
//                   Toast(res.data.msg);
//                   reject(res.data.msg)
//                 } else {
//                   resolve(res)
//                 }
//               },
//               fail: (err) => {
//                 reject(err)
//               }
//          })
//      })
//  }


// module.exports = {
// 	 //封装get方法
// 	 get(url,data){
// 			 reutrn request(url,{
// 					 method:"GET",
// 					 data
// 			 })
// 	 }
// 	 //封装post方法
// 	 post(url,data){
// 			 return request(url,{
// 					 method:"POST",
// 					 data
// 			 })
// 	 }
// }